package com.nep.NEPG.model;

import java.io.Serializable;
import java.time.LocalDateTime;

public class Task implements Serializable {
     private String id;
     private String areaCode;
     private String areaName;
     private String description;
     private String supervisorId;
     private String gridEmployeeId;
     private LocalDateTime assignedTime;
     private TaskStatus status;
     private LocalDateTime completedTime;

     public enum TaskStatus {
          ASSIGNED, IN_PROGRESS, COMPLETED
     }

     public Task() {
     }

     public Task(String id, String areaCode, String areaName, String description,
                 String supervisorId, String gridEmployeeId, LocalDateTime assignedTime) {
          this.id = id;
          this.areaCode = areaCode;
          this.areaName = areaName;
          this.description = description;
          this.supervisorId = supervisorId;
          this.gridEmployeeId = gridEmployeeId;
          this.assignedTime = assignedTime;
          this.status = TaskStatus.ASSIGNED;
     }

     public String getId() {
          return id;
     }

     public void setId(String id) {
          this.id = id;
     }

     public String getAreaCode() {
          return areaCode;
     }

     public void setAreaCode(String areaCode) {
          this.areaCode = areaCode;
     }

     public String getAreaName() {
          return areaName;
     }

     public void setAreaName(String areaName) {
          this.areaName = areaName;
     }

     public String getDescription() {
          return description;
     }

     public void setDescription(String description) {
          this.description = description;
     }

     public String getSupervisorId() {
          return supervisorId;
     }

     public void setSupervisorId(String supervisorId) {
          this.supervisorId = supervisorId;
     }

     public String getGridEmployeeId() {
          return gridEmployeeId;
     }

     public void setGridEmployeeId(String gridEmployeeId) {
          this.gridEmployeeId = gridEmployeeId;
     }

     public LocalDateTime getAssignedTime() {
          return assignedTime;
     }

     public void setAssignedTime(LocalDateTime assignedTime) {
          this.assignedTime = assignedTime;
     }

     public TaskStatus getStatus() {
          return status;
     }

     public void setStatus(TaskStatus status) {
          this.status = status;
     }

     public LocalDateTime getCompletedTime() {
          return completedTime;
     }

     public void setCompletedTime(LocalDateTime completedTime) {
          this.completedTime = completedTime;
     }
}